L'apprentissage automatique est un sous-domaine de l'intelligence artificielle (IA) qui se concentre sur le développement d'algorithmes et de modèles statistiques permettant aux ordinateurs d'effectuer des tâches sans être explicitement programmés. L’objectif principal de l’apprentissage automatique est de permettre aux ordinateurs d’apprendre et de s’améliorer grâce à l’expérience.
Il existe trois principaux types d’apprentissage automatique :
Dans l'apprentissage supervisé, l'algorithme est entraîné sur un ensemble de données étiqueté, ce qui signifie que les données d'entrée sont associées à la sortie correcte correspondante. L'algorithme apprend à mapper les entrées aux sorties, en effectuant des prédictions ou des classifications basées sur les modèles qu'il identifie dans les données d'entraînement.
L'apprentissage non supervisé concerne des données non étiquetées. L'algorithme explore les données pour trouver des modèles, des relations ou des structures sans indication explicite sur ce qu'il faut rechercher. Le clustering et la réduction de dimensionnalité sont des tâches courantes dans l'apprentissage non supervisé.
L'apprentissage par renforcement implique un agent qui apprend à prendre des décisions en interagissant avec un environnement. L'agent reçoit des commentaires sous forme de récompenses ou de punitions en fonction de ses actions, et ajuste sa stratégie pour maximiser les récompenses cumulées au fil du temps.
L'apprentissage automatique est appliqué dans divers domaines, tels que le traitement du langage naturel, la reconnaissance d'images, la reconnaissance vocale, les systèmes de recommandation, les véhicules autonomes, etc. Les algorithmes courants utilisés dans l'apprentissage automatique incluent la régression linéaire, les arbres de décision, les machines à vecteurs de support, les réseaux de neurones et les modèles d'apprentissage en profondeur. L'apprentissage profond, un sous-ensemble de l'apprentissage automatique, implique l'utilisation de réseaux de neurones à plusieurs couches (réseaux de neurones profonds). Cette approche a été particulièrement efficace dans des tâches telles que la reconnaissance d'images et de parole.
Dans cet article, nous aborderons les bases du machine learning avec TensorflowJS. Il s'agit d'une bibliothèque open source développée par Google qui permet aux modèles d'apprentissage automatique, notamment ceux construits avec TensorFlow, de s'exécuter dans les navigateurs Web ou sur Node.js. Il permet aux développeurs d'apporter des fonctionnalités d'apprentissage automatique directement au navigateur et aux environnements NodeJS, permettant ainsi une inférence côté client et des interactions en temps réel. Dans ce guide, nous nous concentrerons sur NodeJS et non sur le navigateur.
Cet article fait partie intégrante d'une publication en 3 phases et dans la deuxième partie, nous formerons un grand modèle de recommandation du monde réel pour les produits de commerce électronique à l'aide de TensorflowJS et dans la troisième partie, nous discuterons plus en détail de la façon d'héberger et de consommer des modèles d'apprentissage automatique, y compris ceux formé avec d'autres technologies comme Tensorflow de Python, PyTorch entre autres dans une API NodeJS.
Un tenseur est un tableau multidimensionnel, une structure de données fondamentale dans TensorFlow.js. Les tenseurs peuvent être scalaires (0D), vectoriels (1D), matriciels (2D) ou avoir des dimensions plus élevées. Ce sont les éléments constitutifs de la représentation des données dans les modèles d’apprentissage automatique.
En apprentissage automatique, un modèle est une représentation d'un système ou d'un modèle appris à partir de données. Dans TensorFlow.js, des modèles peuvent être créés à l'aide de diverses architectures, telles que des réseaux de neurones.
Un réseau de neurones est un modèle informatique inspiré du cerveau humain. Il se compose de couches de nœuds interconnectés (neurones) qui traitent les données d’entrée pour produire une sortie. TensorFlow.js prend en charge la mise en œuvre de réseaux de neurones pour diverses tâches d'apprentissage automatique.
Dans le contexte des réseaux de neurones, les couches sont les éléments constitutifs qui organisent et traitent les données. TensorFlow.js fournit une API de couche pour construire des architectures de réseaux neuronaux.
La formation est le processus d'ajustement des paramètres d'un modèle d'apprentissage automatique à l'aide de données étiquetées pour minimiser la différence entre les résultats prévus et réels. TensorFlow.js facilite la formation de modèles à l'aide d'algorithmes d'optimisation.
L'inférence est le processus d'utilisation d'un modèle entraîné pour faire des prédictions sur de nouvelles données invisibles. TensorFlow.js permet une inférence efficace en temps réel dans les navigateurs Web ou les environnements Node.js.
La fonction de perte mesure la différence entre le résultat prévu et les valeurs cibles réelles pendant l'entraînement. TensorFlow.js fournit diverses fonctions de perte qui peuvent être utilisées pour différents types de problèmes d'apprentissage automatique.
Un optimiseur est un algorithme utilisé lors de la phase d'entraînement pour minimiser la fonction de perte en ajustant les paramètres du modèle. TensorFlow.js propose une variété d'optimiseurs, notamment la descente de gradient stochastique (SGD) et Adam.
Une époque est un passage complet à travers l’ensemble des données d’entraînement pendant la phase d’entraînement. La formation implique généralement plusieurs époques pour améliorer les performances du modèle.
Pendant la formation, les données sont traitées par lots plutôt que par l'intégralité de l'ensemble de données en une seule fois. La taille du lot fait référence au nombre d'échantillons de données utilisés dans chaque itération du processus de formation. TensorFlow.js permet aux développeurs de définir la taille des lots lors de la formation des modèles.
Un ensemble distinct de données utilisé pendant la formation pour évaluer les performances du modèle. TensorFlow.js permet d'utiliser des données de validation pour surveiller et empêcher le surajustement.
La régression est un type d'apprentissage supervisé dont le but est de prédire une sortie numérique continue. Dans TensorFlow.js, des modèles de régression peuvent être créés à l'aide de réseaux de neurones ou d'autres algorithmes, et le processus de formation consiste à minimiser la différence entre les valeurs numériques prédites et réelles.
La classification est un autre type d'apprentissage supervisé dont l'objectif est de classer les données d'entrée dans des classes ou des étiquettes prédéfinies. TensorFlow.js prend en charge les tâches de classification et les réseaux de neurones sont souvent utilisés à cette fin.
Les données de test, également appelées ensemble de tests, constituent une partie distincte de l'ensemble de données qui n...
[Courte citation de 8% de l'article original]